/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.ereconquista.web;

import com.ereconquista.dao.ParametroDAO;
import com.ereconquista.dao.PublicacionDAO;
import com.ereconquista.dao.PublicidadDAO;
import com.ereconquista.modelo.Rubro;
import com.ereconquista.dao.RubroDAO;
import com.ereconquista.modelo.Parametro;
import com.ereconquista.modelo.Publicacion;
import com.ereconquista.modelo.Publicidad;
import java.io.Serializable;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;

/**
 *
 * @author Claudio
 */
@ManagedBean
@ApplicationScoped
public class AplicationBean  implements Serializable {
    
    private RubroDAO rubroDAO;
    private PublicidadDAO publicidadDAO;
    private PublicacionDAO publicacionDAO;
    private ParametroDAO parametroDAO;
    
    private Parametro p;
    private List<Rubro> rubros;    
    private List<Publicacion> ultimasPublicaciones;
    private List<Publicacion> publicacionesVarias;
    private List<Publicidad> publicidad;

    /**
     * Creates a new instance of AplicationBean
     */
    public AplicationBean() {
        
    }
    
    @PostConstruct
    public void init(){
        
        rubroDAO = new RubroDAO();
        publicidadDAO = new PublicidadDAO();
        publicacionDAO = new PublicacionDAO();
        parametroDAO = new ParametroDAO();
        
        p= parametroDAO.getParametros();
        publicidad = publicidadDAO.getPublicidadesActivas();
        rubros = rubroDAO.getListaByNivel(1, true);       
        ultimasPublicaciones = publicacionDAO.getUltimasPublicaciones();
        
    }
    
    public void actualizarUltimasPublicaciones(){
        ultimasPublicaciones = publicacionDAO.getUltimasPublicaciones();
    }
    
    public synchronized Integer getIdImagen(){
        try {
            p.setIdImagen(p.getIdImagen() + 1);
            parametroDAO.editar(p);
            return p.getIdImagen();
        } catch (Exception ex) {
            Logger.getLogger(AplicationBean.class.getName()).log(Level.SEVERE, "getIdImagen", ex);
            return 0;
        }
        
    }
    
    public List<Rubro> getRubros() {
        return rubros;
    }

    public void setRubros(List<Rubro> rubros) {
        this.rubros = rubros;
    }

    public List<Publicacion> getUltimasPublicaciones() {
        return ultimasPublicaciones;
    }

    public void setUltimasPublicaciones(List<Publicacion> ultimasPublicaciones) {
        this.ultimasPublicaciones = ultimasPublicaciones;
    }

    public List<Publicacion> getPublicacionesVarias() {
        return publicacionesVarias;
    }

    public void setPublicacionesVarias(List<Publicacion> publicacionesVarias) {
        this.publicacionesVarias = publicacionesVarias;
    }
    
    public List<Publicidad> getPublicidad() {
        return publicidad;
    }

    public void setPublicidad(List<Publicidad> publicidad) {
        this.publicidad = publicidad;
    }

    public RubroDAO getRubroDAO() {
        return rubroDAO;
    }

    public void setRubroDAO(RubroDAO rubroDAO) {
        this.rubroDAO = rubroDAO;
    }

    public PublicidadDAO getPublicidadDAO() {
        return publicidadDAO;
    }

    public void setPublicidadDAO(PublicidadDAO publicidadDAO) {
        this.publicidadDAO = publicidadDAO;
    }

    public PublicacionDAO getPublicacionDAO() {
        return publicacionDAO;
    }

    public void setPublicacionDAO(PublicacionDAO publicacionDAO) {
        this.publicacionDAO = publicacionDAO;
    }

    public Parametro getP() {
        return p;
    }

    public void setP(Parametro p) {
        this.p = p;
    }

    void actualizarDatos() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    
    
    
}
